package cn.itcast.nems.base.web.controller.b;

import cn.itcast.ic.common.bean.Page;
import cn.itcast.nems.base.api.ClassTypeApi;
import cn.itcast.nems.base.dto.ClassTypeDTO;
import cn.itcast.nems.base.web.vo.ClassTypeVO;
import cn.itcast.nems.common.PageQueryModel;
import cn.itcast.nems.common.web.vo.BasePageRequest;
import cn.itcast.nems.manager.util.CustomBeanUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Objects;

/**
 * <p>
 * 班级类型
 * </p>
 *
 * @author zhouwei
 * @since 2023/9/5 5:00 PM
 **/
@RestController("bClassTypeController")
@RequestMapping("/b/class_type")
@RequiredArgsConstructor
public class ClassTypeController {
    private final ClassTypeApi classTypeApi ;
    /**
     * 查询班级类型列表
     * @param requestParam 请求参数
     * @return 分页结果
     */
    @PostMapping("/page/list")
    public ResponseEntity<?> findPageList(@RequestBody BasePageRequest<ClassTypeVO> requestParam) {
        requestParam.convert();
        ClassTypeDTO classTypeDTO = new ClassTypeDTO();
        if (Objects.nonNull(requestParam.getCondition())) {
            CustomBeanUtil.copyProperties(requestParam.getCondition(), classTypeDTO);
        }
        PageQueryModel<ClassTypeDTO> queryModel = new PageQueryModel<>(requestParam.getPageNumber(), requestParam.getPageSize(), classTypeDTO);
        Page<ClassTypeDTO> page = classTypeApi.findPage(queryModel);
        return ResponseEntity.ok().body(page);
    }
}
